package online.lmds.sdmanage.main.authentication.dao;

import online.lmds.sdmanage.main.authentication.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * Created by Brighten Ma on 2017/4/10.
 */
@Repository("UserDao")
public interface UserDao {


    void regAddUser(@Param("e") User e);

    /**
     * 保存用户信息
     */
    void save(@Param("e") User e);

    /**
     * 根据id找到user
     */
    User getById(@Param("e") User e);

    /**
     * 根据id找到user
     */
    User getByName(@Param("e") User e);

    /**
     * 根据 账号密码 获取 用户
     */
    User getByLogin(@Param("e") User e);

    /**
     * 通过token获取用户
     */
    User getByToken(@Param("e") User e);


    /**
     * 根据 user id 更新 token 过期时间
     */
    int updateTokenExpiryTimeById(@Param("e") User e);

    /**
     * 根据 旧token 更新 token 过期时间
     */
    int updateTokenExpiryTimeByOldToken(@Param("e") User e);

    /**
     * 根据 user id 更新 token
     */
    int updateTokenById(@Param("e") User e);


    /**
     * 根据userId更新资料
     */
    int updateById(@Param("e") User e);


    /**
     * 更新密码
     * @param e
     * @return
     */
    int updatePassword(@Param("e") User e);
}
